package com.py.credit.service;

import com.py.credit.entity.AuthorizeRecord;
import com.py.framework.core.common.Page;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

/**
 * @author YaoS
 * @date 2019-05-13 14:00
 */
public interface AuthorizeRecordService {

    /**
     * 功能描述: 新增申请对象
     *
     * @param record 记录信息
     * @author YaoS
     * @date 19/5/13 15:06
     */
    void addRecord(AuthorizeRecord record);

    /**
     * 功能描述:分页查询record
     *
     * @param name 名称
     * @param page 分页对象
     * @return 查询结果
     * @author YaoS
     * @date 19/5/15 15:56
     */
    List<AuthorizeRecord> selectRecordListForPage(String name, Page page);

    /**
     * 功能描述:查询所有机构信息
     *
     * @param modelId 授权id
     * @return 查询结果
     * @author YaoS
     * @date 19/5/13 14:59
     */
    List<AuthorizeRecord> selectAllRecordList(String modelId);

    /**
     * 功能描述: 根据id查询详情
     *
     * @param id id
     * @return AuthorizeRecord 详情
     * @author YaoS
     * @date 19/5/15 17:02
     */
    AuthorizeRecord selectRecordDetail(String id);
    /**
     * 功能描述: 根据token查询详情
     *
     * @param token token
     * @return AuthorizeRecord 详情
     * @author YaoS
     * @date 19/5/15 17:02
     */
    AuthorizeRecord selectRecord(String token);

    /**
     * 功能描述: 查询模型和机构绑定关系
     *
     * @param modelId 模型id
     * @param token   机构token
     * @return 查询结果
     * @author YaoS
     * @date 19/5/28 15:09
     */
    Integer selectModelRecordBind(String modelId,String token);

    /**
     * 功能描述: 更新record
     *
     * @param record record对象
     * @author YaoS
     * @date 19/5/14 17:08
     */
    void updateRecord(AuthorizeRecord record);

    /**
     * 功能描述: 根据id删除record
     *
     * @param recordId recordId
     * @author YaoS
     * @date 19/5/14 17:08
     */
    void deleteRecordById(Integer recordId);
    
    /**
     * 功能描述: 根据token删除record
     *
     * @param recordId recordId
     * @author YaoS
     * @date 19/5/14 17:08
     */
    void deleteRecordByToken(@Param(value = "token") String token);

    /**
     * 功能描述: 根据id批量删除
     *
     * @param ids id list
     * @author YaoS
     * @date 19/5/15 16:50
     */
    void deleteRecordByIds(List<String> ids);

}
